package br.edu.universo.si.projeto2.infojob.client.componentes.comboboxes;

import java.util.Iterator;
import java.util.List;

import br.edu.universo.si.projeto2.infojob.client.bean.BeanNacionalidade;
import br.edu.universo.si.projeto2.infojob.client.util.Util;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.ListBox;

public class NacionalidadeListBox extends ListBox 
{
	private Integer indice = 0;
	private Boolean callback = false;
	public NacionalidadeListBox(){
		super(false);
		this.addItem("", "");
		this.setWidth("200px");
		AsyncCallback<List<BeanNacionalidade>> callback = new AsyncCallback<List<BeanNacionalidade>>() {
			
			public void onSuccess(List<BeanNacionalidade> result)		
			{
				for (Iterator<BeanNacionalidade> iterator = result.iterator(); iterator.hasNext();) {
					BeanNacionalidade beanNacionalidade = (BeanNacionalidade) iterator.next();				
					NacionalidadeListBox.this.addItem(beanNacionalidade.getNacionalidade(), String.valueOf(beanNacionalidade.getId()));
				}			
				//Setar o indice no Listbox
				NacionalidadeListBox.this.setSelectedIndex(NacionalidadeListBox.this.getIndice());				
				NacionalidadeListBox.this.setCallback(true);
			}

			public void onFailure(Throwable caught) { }
		};

		Util.getService().getNacionalidades(callback);

	}
	public void setIndice(Integer indice) {
		this.indice = indice;
	}
	public Integer getIndice() {
		return indice;
	}
	public void setCallback(Boolean callback) {
		this.callback = callback;
	}
	public Boolean getCallback() {
		return callback;
	}
	public void atualiza(){
		if(callback){
		  NacionalidadeListBox.this.setSelectedIndex(NacionalidadeListBox.this.getIndice());	
		}
	}
}